home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt40s1.arc / EXECPC.MOD < prev    next >
Text File  |  1987-05-22  |  4KB  |  101 lines

  1. (*----------------------------------------------------------------------*)
  2. (*           Exec_PC_Commands  --- Process EXEC PC BBS commands         *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Exec_PC_Commands;
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Procedure:  Exec_PC_Commands                                     *)
  10. (*                                                                      *)
  11. (*     Purpose:    Process Exec PC BBS special escape code commands     *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Exec_PC_Commands;                                             *)
  16. (*                                                                      *)
  17. (*     Calls:                                                           *)
  18. (*                                                                      *)
  19. (*        Async_Send                                                    *)
  20. (*        Async_Receive                                                 *)
  21. (*        PibDownLoad                                                   *)
  22. (*                                                                      *)
  23. (*----------------------------------------------------------------------*)
  24.  
  25. VAR
  26.    X:      INTEGER;
  27.    Y:      INTEGER;
  28.    Ch:     CHAR;
  29.    C:      INTEGER;
  30.    L:      INTEGER;
  31.  
  32. BEGIN (* Exec_PC_Commands *)
  33.  
  34.                                    (* Get next character after Exec PC flag *)
  35.  
  36.    Async_Receive_With_TimeOut( 5 , C );
  37.  
  38.    IF C <> TimeOut THEN
  39.       Ch := CHR( C )
  40.    ELSE
  41.       Ch := CHR( 0 );
  42.                                    (* Handle it *)
  43.    CASE Ch OF
  44.  
  45.       'D' : BEGIN (* Auto-Download *)
  46.  
  47.                FileName[0] := #0;
  48.                L           := 0;
  49.  
  50.                WRITE('Autodownloading         ');
  51.  
  52.                REPEAT
  53.  
  54.                   Async_Receive_With_TimeOut( 5 , C );
  55.  
  56.                   IF C <> TimeOut THEN
  57.                      Ch := CHR( C )
  58.                   ELSE
  59.                      Ch := CHR( 0 );
  60.  
  61.                   IF NOT ( ORD( Ch ) IN [ACK,CAN,NUL] ) THEN
  62.                      BEGIN
  63.                         Async_Send( Ch );       (* echo 1 char at a time *)
  64.                         L           := SUCC( L );
  65.                         FileName[L] := Ch;
  66.                         WRITE( Ch );
  67.                      END;
  68.  
  69.                UNTIL ORD(Ch) IN [ACK,CAN];
  70.  
  71.                FileName[0] := CHR( L );
  72.  
  73.                IF ORD( Ch ) = ACK THEN
  74.                      BEGIN  (* Filename echoed correctly *)
  75.  
  76.                         FOR X := 0 TO 18 DO
  77.                            WRITELN;
  78.  
  79.                         IF POS( '=X' , FileName ) <> 0 THEN
  80.                            DELETE( FileName , POS( '=X' , FileName ) , 2 );
  81.  
  82.                         FileName := TRIM( FileName );
  83.  
  84.                         PibDownload( Xmodem_Chk );
  85.  
  86.                      END;
  87.  
  88.             END  (* Auto_DownLoad *);
  89.  
  90.       '2' : BEGIN  (* Draw a Box at corners (Oldx,Oldy) and (NewX,NewY) *)
  91.                Draw_Box( OldX, OldY, NewX, NewY,
  92.                          Global_Text_Attribute, Menu_Text_Color, '' );
  93.             END;
  94.  
  95.       ELSE;
  96.  
  97.    END (* CASE *);
  98.  
  99. END   (* Exec_PC_Commands *);
  100.  
  101.